﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using log4net;
using TheBullysStore.Models.ModuloAdministracion.ConsumoAgua;
using TheBullysStore.Models;
using TheBullysStore.Controllers.ModuloAdministracion;
//using TheBullysStore.Models.ModuloAdministracion.JuntaDirectiva;

namespace TheBullysStore.Controllers.ModuloAdministracion
{
    public class ConsumoAguaController : Controller
    {
        //
        // GET: /ConsumoAgua/
        //JuntaDirectivaFacade juntaDirectivaFacade = new JuntaDirectivaFacade();
        private static ILog log = LogManager.GetLogger(typeof(ConsumoAguaController));
        ConsumoAguaFacade consumoAguaFacade = new ConsumoAguaFacade();
        ConsumoAguaDAO consumoAguaDAO = new ConsumoAguaDAO();
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult ConsumoAgua()
        {
            return View();
        }
        public ActionResult RegistrarConsumoAgua()
        {
            return View();
        }
        public ActionResult BuscarConsumoAgua()
        {
            return View();
        }
        [HttpPost]
        public JsonResult cargarEdificiosR(string verificador)
        {
            try
            {
                List<EdificioR> listaEdificios = consumoAguaDAO.listarEdificiosR();
                return Json(new { listaEdificios });
            }
            catch (Exception ex)
            {
                log.Error("Cargar Edificio- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al cargar" });
            }
        }
        [HttpPost]
        public JsonResult buscarConsumoAgua(BusquedaConsumoAgua busquedaConsumoAgua)
        {
            try
            {
                List<ConsumoAguaBean> listaConsumoAgua = consumoAguaFacade.listarConsumoAgua(busquedaConsumoAgua);
                return Json(new { listaConsumoAgua });
            }
            catch (Exception ex)
            {
                log.Error("Buscar Consumo de Agua- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al buscar" });
            }
        }
        [HttpPost]
        public JsonResult cargarPeriodos(string verificador)
        {
            try
            {
                List<string> listaPeriodos = consumoAguaFacade.listarPeriodos();
                return Json(new { listaPeriodos });
            }
            catch (Exception ex)
            {
                log.Error("Cargar Eficio- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al cargar" });
            }
        }
        [HttpPost]
        public JsonResult cargarPisosR(string id_edificio)
        {
            try
            {
                List<String> listaPisos = consumoAguaFacade.buscarPisos(id_edificio);
                return Json(new { listaPisos });
            }
            catch (Exception ex)
            {
                log.Error("Cargar Pisos- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al cargar" });
            }
        }
        [HttpPost]
        public JsonResult cargarDepartamentosR(string id_edificio,string piso)
        {
            try
            {
                List<DepartamentoR> listaDepartamentos = consumoAguaFacade.listarDepartamentosR(id_edificio, piso);
                return Json(new { listaDepartamentos });
            }
            catch (Exception ex)
            {
                log.Error("Cargar Departamento- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al cargar" });
            }
        }
        [HttpPost]
        public JsonResult mantenerConsumoAgua(ConsumoAguaBean consumoAgua)
        {
            try
            {
                string mensaje = consumoAguaFacade.mantenerConsumoAgua(consumoAgua);
                return Json(new { mensaje });
            }
            catch (Exception ex)
            {
                log.Error("Mantener Consumo de Agua- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al realizar el Mantenimiento" });
            }
        }
        [HttpPost]
        public JsonResult cargarUltimaFechaRegistrada(string id_departamento)
        {
            try
            {
                Conjunto conjunto = consumoAguaFacade.cargarUltimaFechaRegistrada(id_departamento);
                return Json(new { conjunto });
            }
            catch (Exception ex)
            {
                log.Error("Cargar Ultima Fecha Registrada- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al cargar" });
            }
        }
        [HttpPost]
        public JsonResult verificarModificacion(ConsumoAguaBean consumoAgua)
        {
            try
            {
                string mensaje = consumoAguaFacade.verificarModificacion(consumoAgua);
                return Json(new { mensaje });
            }
            catch (Exception ex)
            {
                log.Error("Verificar Modificacion- GET(EXCEPTION):", ex);
                return Json(new { me = "Ocurrió un error al verificar" });
            }
        }
    }
}
